/**
 * @author 木人心
 * @version 1.1.0
 */
@use 'sass:map';
@use 'global' as global;
@use '../tools/util' as util;

// 存储格式化后用于生成var变量的颜色，包含primary默认主题颜色和生成的mix和rgba颜色
$colors: ();
// 存储格式化后用于添加到bor-color中的非mix和rgba颜色，包含primary默认主题颜色
$colors-base: ();
// 取出global中生成的$colors，例：$type:primary；$items:[(base:#FFFFFF,mix...,rgba...) | #FFFFFF]
@each $type, $items in global.$colors {
  // 如果$items是map类型,说明是可能包含mix和rgba颜色,需要提取出来
  @if type-of($items) == 'map' {
    @each $name, $color in $items {
      // 获取颜色
      $color: #{map-get(global.$colors, $type, $name)};
      // 如果name是base，不保留name直接存储primary: #FFFFFF，否则存储primary-[mix|rgba]: #FFFFFF
      @if #{$name} == 'base' {
        $colors: map.deep-merge((#{$type}: $color), $colors) !global;
        $colors-base: map.deep-merge((#{$type}: $color), $colors-base) !global;
      } @else {
        $colors: map.deep-merge((#{$type}-#{$name}: $color), $colors) !global;
      }
    }
  } @else {
    // 如果不是一个map类型的设备，直接存储完事
    $color: #{map-get(global.$colors, $type)};
    $colors: map.deep-merge((#{$type}: $color), $colors) !global;
    $colors-base: map.deep-merge((#{$type}: $color), $colors-base) !global;
  }
}

:root {
  // 生成var变量
  @each $name, $color in $colors {
    --yk-color-#{$name}: #{$color};
  }
}

// 生成字体颜色和背景颜色
@each $name, $color in $colors {
  .color-#{$name} {
    color: $color
  };
  .bg-color-#{$name} {
    background-color: $color
  };
}

@each $name, $color in global.$text-color {
  // 生成字体颜色
  .text-color-#{$name} {
    color: $color
  };
}

// 生成边框颜色
$directions: ('': '', '-t': '-top', '-r': '-right', '-b': '-bottom', '-l': '-left');
$direction-extend: ('y': ('t', 'b'), 'x': ('l', 'r'));

//@each $name, $color in map.deep-merge(global.$border-color, $colors-base) {
@each $name, $color in map.deep-merge(global.$border-color, $colors) {
  // 如果$name是''，如'': #FFFFFF，生成样式时以base作为name名称
  @if $name == '' {
    $name: 'base'
  }
  @each $suffix, $attr-suffix in $directions {
    .bor-#{$name}#{$suffix} {
      border#{$attr-suffix}: 1px solid $color;
    }
  }
  @each $suffix, $item in $direction-extend {
    .bor-#{$name}-#{$suffix} {
      @each $suffix-2 in $item {
        @extend .bor-#{$name}-#{$suffix-2}
      }
    }
  }
}
